XSS Attack

❓질문

XSS 공격이란 무엇이며, 프론트엔드에서 이를 방어하기 위한 방법을 설명해주세요.


💡 조사하기전 내가 알고 있던 내용

웹 사이트에 악성 스크립트를 주입하여 공격하는 기법을 XSS (Cross stie scripting)이라 합니다.

프론트엔드에서 이를 방어하는 방법의 예로 HTTP Only 속성을 설정한 쿠키를 예로 들 수 있을 것 같습니다.
이를 통해 자바스크립트로 쿠키에 접근하는걸 방지할 수 있습니다.


🏫 정리한 내용

XSS는 공격자가 신뢰할 수 있는 웹사이트에 악성 스크립트를 삽입하여 사용자 브라우저에서 실행되게 하는 공격입니다. 이를 통해 쿠키 탈취 , 세션 하이재킹 , 피싱 등이 가능합니다.

XSS 공격은 크게 세 가지 유형이 있습니다.

  1. 저장형 XSS입니다. 악성 스크립트가 서버에 저장되어 다른 사용자가 해당 페이지를 방문할 때 실행됩니다.
  2. 반사형 XSS입니다. URL 파라미터 등을 통해 전달된 악성 스크립트가 서버 응답에 포함되어 실행됩니다.
  3. DOM 기반 XSS입니다. 클라이언트 측 스크립트가 DOM을 동적으로 조작할 때 발생합니다.

이러한 보안문제를 해결하기 위한 방법으로는 입력 검증출력 이스케이핑이 있습니다. 사용자 입력을 적절히 검증하고, HTML 출력시 특수 문자를 이스케이프 처리합니다.